#ifndef _LED_CONTROLLER_H_
#define _LED_CONTROLLER_H_

#define USE_POLSYS				// 不使用 Polsys 需要注释掉
#define MAX_LED			3		// 可控制的最大LED数量，值越大需要的内存越大

#include "typedef.h"

// 自定义类型

typedef enum _led_action_t	// LED动作（状态）
{
	LED_NULL,
	LED_ON,
	LED_OFF,
	LED_FLASH,
	LED_FAST_FLASH,
	LED_GRA_ON,
	LED_GRA_OFF,
	LED_ON_GRA_OFF,
	LED_GRA_BREATH,
	LED_END
}led_action_t;


typedef void (*led_on_func_t)(void);
typedef void (*led_off_func_t)(void);
typedef void (*led_value_func_t)(u8 value);

typedef struct _led_t	// LED_R 类
{
	led_on_func_t On;
	led_off_func_t Off;

	led_action_t mAction;
	int mTime;
	int mCount;
	int mActionValue;
}led_t;


// APIs

#ifndef USE_POLSYS
void LEDC_CtrlLoop();
#endif
void LEDC_Regist(led_t *led, led_on_func_t on, led_off_func_t off);
void LEDC_SetAction(led_t *obj, led_action_t action, int action_value);


#endif
